home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 June: Reference Library / Dev.CD Jun 99 RL Disk 1.toast / Technical Documentation / Macintosh Technotes and Q&As / technotes / tn / tn_1081.cw < prev    next >
Encoding:
Text File  |  1998-04-27  |  42.1 KB  |  427 lines  |  [TEXT/R*ch]

  1. ˜BOBOÚ‘dHZHZHZ‹
  2. ÚÔÿÿHÚÌbBN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØ%ÓÿÿÚ‰ÿ-ZÿÿÿFrederique Courard HaurixHHÚ(ÿáÿáùEG(üHHØ(d'hΔÿÿÚ=‹∫Ûâ/Àë.•ÖÚLÚp„ÿà„Ú˛.ë˙˚ÿñ}ÚAàÙv` ÚÜ4°ÿÿÿÿÿÿÿÿ/lDSETê3:$„3:iˇÚ(Ú$ÚΔÚ¨°ZÚÄU…°ZÚH0VQ°ZÚ€0MI°ZÚP1X#°ZÚ´+R+ɰZÚÀ!øH˘
  3. !!  s;wcxcÆ-Ç-í-î-≈-…-—
  4. –-q-r-‹-Ñ-s-u-
  5. -
  6.  -
  7. !-
  8. D- - - 5-
  9. e-
  10. f-q-r-◊-Ø- -!-V-W-Ñ-Ò-Y-Z-[-q-r-7-8-F-G-H-I-‘-Ÿ-3-4-!-"-€-¥-í-î- -!-!∏-!≤-!¿-!Ï-"ÿ-#-#-#--#Ú-#Û-$
  11. -$ -$2-$h-$‰-$-%î%î%W}&}&}&}&1&MU'∫U(πU)ßU+2U,pU-¶1-·1-ïU.±U0hU2Ú2`2"2b2è2ø\˙à à#à*pà0qà&sà‹vàØwàBx
  12. f√
  13. àO‚
  14. àV˛
  15. fÅ <Æ >Ç
  16. SÜ
  17. S5
  18. Sà
  19. Sî
  20. '…•
  21. 7—à,¬ @–
  22. H°
  23. 'é
  24. Së
  25. ' 
  26. H
  27. '‘
  28. 'Û
  29. Sæ
  30. 'F
  31. SQ
  32. SR
  33. '⁄
  34. Sˆ
  35. 'Ñ
  36. SÕ
  37. 'ß
  38. Sé
  39. 'B
  40. SZ
  41. Z∏
  42. Sv
  43. '∏
  44. S7
  45. '    Ü
  46. S    †
  47. '    fi
  48. S    ã
  49. '    é
  50. '
  51. 
  52. '
  53. 
  54. '
  55.   >
  56. !à%
  57. D
  58. '
  59. [
  60. '
  61. ’
  62. '     
  63. S 
  64. ' à% 4
  65. S 5
  66. '  
  67. H œ
  68. ' µ
  69. ' ·
  70. S
  71. f
  72. 'Øà%
  73. '!
  74. SP
  75. SU
  76. Sˆ
  77. 'T
  78. SU
  79. 'p
  80. 'Z à(p
  81. 'Hà%—
  82. '‘
  83. SŸ
  84. '˝
  85. '4
  86. 'L
  87. SÓ
  88. 'ø
  89. S
  90. '#
  91. SL
  92. 'x
  93. S≠
  94. '˚
  95. S
  96. '´
  97. SÀ
  98. '<
  99. '¯
  100. Së
  101. 'îà%
  102. ' π
  103. '!j
  104. S!∏
  105. S!≤
  106. '!¿à%!Î
  107. S!Ï
  108. '"
  109. S"
  110. '#à%#,
  111. S#-
  112. '#Û
  113. S#›
  114. '$ 
  115. S$
  116. 
  117. '$g
  118. '% M%Ó\%Vm%W
  119. :&àa&L
  120. e&M
  121. ,
  122. -n-‚
  123. -ˆn-¡
  124. -µ
  125. q-¶àa-î
  126. e-ï
  127. .±
  128. /„
  129. s/Ï
  130. /Øn/ë
  131. 0+
  132. 1Á
  133. 1‡
  134. 2
  135. ò‘2
  136. …2àt2! ã2"2%
  137. 2a
  138. F2b2e
  139. F2ç
  140. 2è à92÷
  141. 2ø
  142. 
  143. ≤≈Ú√≈ÁÚXJBÚ    ‘ïÚL {≠ÚT
  144. ‡=ÚH:ÃÚD‡⁄ÚP—Ú˚∫Úd úÚ!üÚ"éÚ°"ÿÚ´%∏Ú 'ÍÚ€*ìÚ‰-fl Ú•1
  145. 1Ú≥≈
  146.  
  147.  
  148. T E C H N O T E : 
  149. Understanding the Differences Between Apple and Windows IMA-ADPCM Compressed Sound Files
  150.  
  151.    
  152.  
  153. By Mark Cookson
  154.   
  155. Apple Developer Technical Support (DTS)
  156.  
  157.  
  158. If you attempt to play a sound compressed with AppleÕs IMA compressor on a computer running WindowsÕ IMA decompressor, the sound either does not play or plays incorrectly. The same thing also occurs if you try to play a Windows WAVE file compressed with the IMA-ADPCM algorithm on a Macintosh using the Apple-supplied Ôima4Õ decompressor. Because the two sound file formats are not interchangeable, many developers working in cross-platform environments want to know what the differences are between Apple IMA and Windows IMA compressed sound files.
  159.  
  160. This Technote is aimed at developers who want to edit or play back Macintosh IMA-ADPCM files on computers not running the Mac OS or QuickTime for Windows.
  161.  
  162. A Little Background & Terminology
  163. IMA is an acronym for the Interactive Multimedia Association, which defined and published the ADPCM algorithm that AppleÕs and MicrosoftÕs compressors (and therefore decompressors) are based on. 
  164.  
  165. For purposes of this Note, I refer to AppleÕs compressor as IMA, because that is generally how Macintosh programmers refer to it, and I refer to Microsoft's compressor as ADPCM because that is how most Microsoft programmers refer to it. I refer to the actual algorithm, regardless of platform, as IMA-ADPCM (because thatÕs its official designation).
  166.  
  167. The IMA-ADPCM algorithm only defines how to take 16-bit linear samples and compress them down to four bits each. AccordinBg to page 11 of Recommended Practices for Enhancing Digital Audio Compatibility in Multimedia Systems revision 3.00 (October, 1992) by IMA, Ò...tagging the [audio] stream definition and synchronization issues are left to upcoming IMA recommendations,Ó which, to date, have not yet been made. Since it does not define the data stream or file format for the resulting data, Apple and Microsoft have designed file formats that are not exactly the same in the way that data is streamed to the file. The consequence of this is explained in the next section.
  168.  
  169. The IMA-ADPCM algorithm takes a word (16 bits), and produces a nibble (4 bits), which is then placed sequentially into a buffer for later storage. This has several important advantages. For one thing, it means that while the uncompressed data is endian dependent (being either biïg-endian or little-endian), the resulting compressed data is endian; independent, which is a big plus when making a cross-platform sound standard.
  170.  
  171.  
  172. Differences in Data Stream Formats
  173. The reason why the Apple and Microsoft IMA files are not compatible is because of their different data stream formats, not because the actual compression algorithm differs radically. The IMA-ADPCM algorithm does not specifically disallow data other than sound data in the file format, so Apple and Microsoft were able to make design decisions and implement the file stream that worked best for their intended use and to fit within any previous sound file definitions.
  174.  
  175. Differences in Packet Sizes
  176. The most obvious differences between AppleÕs and MicrosoftÕs ADPCM com≠pressed files are in the size of the packet that each uses. A packet is the smallest amount of data that can be decompressed by the given the algorithm implementation. All decompression must be done with an integer number of packets.
  177.  
  178. AppleÕs IMA compressed files have a fixed packet size of 64 samples per packet, while Microsoft's ADPCM compressed files have a variable number of samp=les per packet. The packet size is not variable within a WAVE file, but it can, and does, vary between WAVE files. 
  179.  
  180. Since the IMA-ADPCM algorithm is a type of run-length encoding, which doesn't lend itself to easy random access, to allow for random access the encoded data is broken into packets with the predicted sample value and step index put at the front of the packet of samples. This information can be used to restart the decompression from this point in the file.
  181.  
  182. Differences in Encoding/Decoding Stereo Streams and AIFF and WAVE Files
  183.  
  184. AppleÕs and MicrosoftÕs AÃDPCM compressed files also differ in how stereo streams are encoded, and therefore decoded. The IMA standard does not say anything about having predictor bytes, nor does it say how multiple channels of sound should be treated, and that is one place where AIFF and WAVE files differ. 
  185.  
  186. For packet size, Apple chose 64 samples per predictor bytes, and for stereo, Apple defines that a packet of left channel data precedes a packet of right channel data. Apple's IMA compressor puts two bytes at the front of each packet, which are referred to as predictor bytes (not be confused with the predictor value that the IMA-ADPCM algorithm defines). These two bytes contain the step index, a 7-bit value in the low byte, and the most significant 9 bits of the predictor value. Obviously, since the real predictor value is 16 bits, this 9-bit predictor is only an approximation, but it doesnÕt cause significant loss of quality.
  187.  
  188. Microsoft, on the other hand, lets the prog⁄ram compressing the sound determine the size of the packet, and the WAVE standard is eight samples of left data followed by eight samples of right data. WAVE files also have a two byte header just like the Mac, but have an 8-bit step index instead of a 7-bit step index and an 8-bit predicted sample approximation instead of a 9-bit approximation.
  189.  
  190.  
  191. The wBlockAlign Field
  192.  
  193. The WAVE file format has a field called wBlockAlign which tells the program reading the file the minimum number of bytes that must be processed at a time. The only WAVE files compressed with ADPCM that I have studied have had this value set to either 512 or 1024. This field could be set to other values. Setting this value to a number larger than 34 allows the WAVE file to have fewer predictor bytes than the same data as an IMA compressed AIFF file.
  194.  
  195. AppleÕs method of small packet sizes gains the ability to start playing sound from more locations in the file, thus giving better random access. MicrosoftÕs method still allows for random access, but with greater jumps between points where sound can begin playing from.
  196.  
  197.  
  198.  
  199. Consequences of the Differences Between AIFF and WAVE File Formats
  200.  
  201. Because of the substantial differences between the AIFF and WAVE formats, the Apple IMA decompression codec will not handle MicrosoftÕs ADPCM compressed WAVE files. 
  202.  
  203. Stereo ADPCM WAVE files have the channels interleaved differently than AIFF files and have fewer predictor bytes, which is a significant enough difference that the Apple IMA decompressor will not decompress them and produce the same sound as the Microsoft ADPCM decompressor would. The Microsoft ADPCM decompressor will not decompress a stereo IMA AIFF file ∫as the Apple IMA decompressor would unless it is modified to take into account the different channel interleaving and predictor bytes.
  204.  
  205. Because the Apple IMA compressor makes use of the high bit of the low byte in the predictor word for the predicted sample (to double its precision) and the Microsoft IMA compressor treats this bit as part of the value of the step index, it is likely that the step index will be invalid most of the time if the Microsoft ADPCM decompressor is dealing with an Apple IMA compressed sound.
  206.  
  207. The step index is likely to be invalid because, depending on what the value of the predicted sample is, the high bit of the low byte of the predictor word (the least significant bit of the predicted sample) may or may not be set. Because the Microsoft ADPCM decompressor takes all 8 bits of the low byte of the predictor word, instead of only the low 7 bits (which are all that aúre needed; the step indexÕs possible range is from 0 to 88, inclusive), having the high bit set will automatically make the index out of range, which may cause the decompressor to stop decompressing data.
  208.  
  209. Differences in Resulting Data at the Nibble Level
  210.  
  211. Inspection of the same data compressed using AppleÕs IMA compressor and Microsoft's ADPCM compressor shows differences in the resulting data at the nibble level. The difference in the resulting data is often not major: if the data is different, it is usually only off by one value plus or minus. Examining the public Microsoft IMAADPCM.C file shows that the imaadpcmFastEncode and imaadpcmSampleEncode algorithms are not exactly the same as that published by IMA, but I have not attempted to trace executiüon of sample data to determine where the algorithm is producing different data. When played back through the correct decompressor, the two sounds sound identical.
  212.  
  213.  
  214. The Bottom Line
  215. What this means is that if you were to go to all the work of convertingé from one file format to the other ‹‹ for example, converting a WAVE file to AIFF file ‹‹ you would find that when you decompressed the sound, the resulting sound would be slightly different, though the change might not be audible. 
  216. 
  217.  
  218. Options for Cross-Platform Compressed Sound
  219. If you are a developer and wish to have only one sound file format for your cross- platform product, what are your options when it comes to cross-platform compressed sound?
  220.  
  221. At this point in time, you have three options:
  222.  
  223. ¥ go with QuickTime sound-only movies,
  224. ¥ use both AIFF and WAVE IMA-ADPCM compressed sounds,
  225. ¥ or donÕt use IMA-ADPCM compressed sounds.
  226.  
  227. Each solution has its own advantages and drawbacks. Only you can determine the right combination for your intended market.
  228. ∏
  229. Summary                                                              
  230. As you can see, using cross-platform sounds doesnÕt have to be difficult. It all revolves around the proper selection of a file format. IMA may not the panacea that it was intended to be. 
  231.  
  232.  
  233.  
  234. Playing a Compressed WAVE File on the Mac: A Sidebar 
  235. You can play a compressed WAVE file on the Mac, but probably not with the default functionality of the Sound Manager. You have to do all of the sound header parsing yourself, just as you do for an uncompressed sound, and then you have data which you may or may not be able to directly pass to the Sound Manager. 
  236. If the WAVE is formatted using µlaw, then your program doesnÕt have to do anything special. Since the µlaw file is processed on a byte by byte basis, and there is no endian difference between the same data as an AIFF or WAVE file, the standard Mac µlaw decompressor can deal with this data without a problem. 
  237. On the other hand, you cannot play IMA-ADPCM compressed WAVE files as simply as you could play a µlaw WAVE files because of the difference in the actual data stream of a sound compressed with the Mac's IMA compressor versus the same sound compressed with the Windows' IMA-ADPCM compressor. 
  238. You have to deal with WindowsÕ IMA-ADPCM compressed WAVE sounds just as you would any sound which required a custom decompressor. Your program does all the decompression. This can be done either by writing a decompression component for the Mac (in which case any program can use it), or by having a decompression function in your program.
  239. If you write your own sound decompressor ('sdec'), you can use any Sound Manager routine that will play an arbitrarily compressed sound. You must make sure, however, to specify that the sound header explicitly states that the sound is compressed with your compressor, so that the Sound Manager will call your 'sdec'. 
  240. If you choose not to write a decompression component and you can decompress the sound completely, you can use any Sound Manager call that takes a buffer of uncompressed sound. If you can't decompress the sound completely, you will have to decompress it in chunks and use SndPlayDoubleBuffer or bufferCmd's to play each chunk.
  241.  
  242. Playing an Uncompressed WAVE File Via the Sound Manager
  243. To play an unco mpressed WAVE file via the Sound Manager is relatively easy. You only need to parse the soundÕs header and then give the Sound Manager buffers of properly formatted data to play.
  244. Because the headers of a AIFF and WAVE are very similar and the data is stored in very much the same way in both files, parsing a WAVE header is no more difficult than parsing an AIFF header. Microsoft documents the format in Multimedia Programming Interface and Data Specification v1.0. In the SndPlayDoubleBuffer sample code (on AppleÕs Developer ToolChest CDs), there is also quick-and-dirty code that shows how to parse a WAVE header.
  245. Once you have parsed the WAVE header, you can play the data in much the same way you would play AIFF data. Remember that the WAVE file's data is stored little-end1ian, but if you have 8-bit (mono or stereo) sounds, that means nothing: a byte in little-endian is the same as a byte in big-endian. If you use 16-bit (mono or stereo) sound, however, an endian conversion will have to take place before you can play the sound. 
  246.  
  247. Further Reference
  248. n  Multimedia Programming Interface and Data Specification v1.0
  249. n  To get in touch with the IMA organization for more information on their standands: <http://ima.org/forums/imf/audio/compress.html>
  250. Acknowledgments
  251. Thanks to Peter Hoddie, Tom Maremaa, Jim Reekes, and Bob Wambaugh.ZÿÿN°DSET≠ÿÿ.Hes-oÿÿÿÿÿÿÚ˛°√56Í0°ÿÿ6ÿÿ*56ÍDSET| ÿÿ.HÿÿÿÿÿÿÚtÍZ°ÿÿ√â°ÿÿj°ÿÿ˘    ò°ÿÿ
  252.   z°ÿÿ ¨°ÿÿ[√°ÿÿã°ÿÿk˘°ÿÿ    ó
  253.  °ÿÿ { ¨°ÿÿ0°ÿÿ6ÿÿ*56ÍDSET≠ÿÿ.HYOOB'ÿÿÿÿÿÿÚ˘56Í-°ÿÿ2ÿÿ*56Ͱ-‹°-†°-†°-    †°-
  254. †°- †DSETT∑∞@∫ÚôÚÚ¸Ú›°-Ú√, III∫I$"    àP"    à|"    àP |78hrh0¨P
  255. ΩÚìΩ
  256.  
  257. Technote 1081      ///          Release  1.0      © 1996   Apple Computer, Inc.      ///              ///          Page    of   6
  258. FNTMCUTSDSUM1Frederique Courard HauriHDNISTYL˛Ìÿÿ@STYLÚÀÚäÚÄÚÌÚÔÚÜÚäÚè
  259. Çÿÿ;
  260. ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ    
  261. ÿÿ ÿÿ 
  262. ÿÿÿÿ
  263. ÿÿ ÿÿ
  264. ÿÿÿÿÿÿÿÿÿÿ    ÿÿÿÿ        ÿÿÿÿÿÿ
  265. U    ÿÿÿÿÿÿ ˘    ÿÿ:ÿÿÿÿ ˙ÿÿ˘$
  266. ÿÿÿÿ
  267. ÿÿ
  268. ÿÿÿÿÿÿÿÿ    ÿÿÿÿ
  269. ÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ
  270. ÿÿÿÿÿÿÿÿ%‹ÿÿÿÿÿÿ0ÿÿÿÿ0ÿÿÿÿ0ÿÿÿÿ0ÿÿÿÿ0ÿÿÿÿ0    ÿÿÿÿ0
  271. ÿÿÿÿ0 ÿÿÿÿ0 ÿÿÿÿ 0
  272. ÿÿÿÿ "0ÿÿÿÿ!$0ÿÿÿÿ")0ÿÿÿÿ%#+‹ÿÿÿÿÿÿ$.0++ÿÿ%/0++ÿÿ&20++ÿÿÿÿ'30+/ÿÿ(40+/ÿÿ)50+/    ÿÿ*60+/
  273. ÿÿ+80+/ ÿÿ,=0+/ ÿÿÿÿ-?0+.ÿÿÿÿ.A0+.)ÿÿÿÿ/C0+2*ÿÿ"0E0+2ÿÿÿÿ%1G‹ÿÿÿÿÿÿ2J0GG+ÿÿÿÿ3K0GG,ÿÿÿÿ4L0GG,ÿÿÿÿ5N0GK-ÿÿÿÿ6Q0GK.ÿÿÿÿ7R0GK.    ÿÿÿÿ8W0GK.
  274. ÿÿÿÿ9X0GK. ÿÿÿÿ:Y0GK. ÿÿÿÿ;[0GJ/ÿÿÿÿ<^0GJ/ÿÿÿÿ=_0GL-ÿÿÿÿ>b0GL.ÿÿÿÿ%?d‹ÿÿÿÿÿÿ@g0dd0ÿÿÿÿAh0ddÿÿÿÿBi0ddÿÿÿÿCj0dh1    ÿÿÿÿDk0dhÿÿÿÿEl0dh     ÿÿÿÿFo0dh!    ÿÿÿÿGp0dh"    ÿÿÿÿHr0dh#    ÿÿÿÿIy0dg2$
  275. ÿÿÿÿJ{0dg2%
  276. ÿÿÿÿK~0di&    ÿÿÿÿL0di'ÿÿÿÿ%M∞‹ÿÿÿÿ(ÿÿN≥0∞∞3)ÿÿÿÿO∑0∞∞*ÿÿÿÿPΩ0∞∞+ ÿÿÿÿQ—0∞∑,ÿÿÿÿRŸ0∞∑-ÿÿÿÿSΔ0∞∑.ÿÿÿÿTŒ0∞∑/ÿÿÿÿU‚0∞∑0ÿÿÿÿV„0∞∑1ÿÿÿÿW‰0∞≥46
  277. ÿÿÿÿX0∞≥47
  278. ÿÿÿÿYˆ0∞Ω*4
  279. ÿÿÿÿZ˜0∞Ω5
  280. ÿÿÿÿ[˝‹ÿÿÿÿ(ÿÿ\˛0˝˝) ÿÿO]ˇ0˝˝*ÿÿÿÿ^ı0˝˝2ÿÿÿÿ_ƒ0˝ˇ,ÿÿÿÿ` 0˝ˇ3ÿÿÿÿa¡0˝ˇ8ÿÿÿÿb¢0˝ˇ9ÿÿÿÿc£0˝ˇ:ÿÿÿÿd€0˝˛56
  281. ÿÿÿÿe¥0˝ı<ÿÿÿÿfœ‹ÿÿÿÿ;ÿÿg§0œœ6=ÿÿÿÿh¨0œœ>ÿÿÿÿi©0œ¨ ÿÿÿÿjª0œ¨!ÿÿÿÿk«0œ¨"ÿÿÿÿl¬0œ¨#ÿÿÿÿm–0œ§7Aÿÿÿÿn®0œ§7Bÿÿÿÿo¯Øÿÿÿÿÿÿp°8¯¯ÿÿÿÿq±8¯¯ÿÿÿÿr”8¯¯ÿÿÿÿs“8¯¯ÿÿÿÿt´8¯¯ÿÿÿÿuµ8¯¯ÿÿÿÿv¶8¯¯ÿÿÿÿw·8¯¯ÿÿÿÿx¸8¯¯ ÿÿÿÿy’8¯¯!ÿÿÿÿzº8¯¯#ÿÿÿÿ{»8¯¯$ÿÿÿÿ|πØÿÿÿÿ8&ÿÿ}∏8ππ9'ÿÿÿÿ~≤8ππ:(ÿÿÿÿ¿8ππ;*ÿÿÿÿ•À8ππ<+ÿÿÿÿ™Á8ππ<-ÿÿÿÿ≠Â8ππ<.ÿÿÿÿ∞Ã8ππ</ÿÿÿÿ≥Ä8ππ<1ÿÿÿÿ∑Å8ππ<2ÿÿÿÿ∫Æ8ππ<3ÿÿÿÿ ΩÇØÿÿÿÿ4ÿÿ√È8ÇÇ5ÿÿÿÿ≈É8ÇÇ6ÿÿÿÿ…Ê8ÇÇ8ÿÿÿÿ—Ë8ÇÇ9ÿÿÿÿ‘Ì8ÇÇ<ÿÿÿÿŸI    ÿÿÿÿÿÿ⁄PÿÿI    ÿÿ⁄∂|ÿÿI    ÿÿÿÿ    Δc    ÿÿ%ÿÿÿÿŒfÿÿcÿÿÿÿ‚Ú    ÿÿIÿÿÿÿ„î    ÿÿOÿÿÿÿ‰    ÿÿUÿÿÿÿ
  282. ÿÿVÿÿÿÿˆ    ÿÿWÿÿÿÿ˜ÿÿXÿÿÿÿ˘ÿÿGXÿÿÿÿ˙ÿÿXÿÿÿÿ˚    ÿÿYÿÿÿÿ˝ÿÿI[ÿÿÿÿ˛
  283.     ÿÿÿÿÿÿˇ!    ÿÿ    ÿÿÿÿı ÿÿ
  284. ÿÿÿÿƒ#ÿÿ! ÿÿÿÿ mÿÿî?>ÿÿÿÿ¡9 ÿÿÿÿ¢ÕÿÿS Œ £ÿÿUÿÿÿÿ€\î=ÿÿÿÿ¥;    Kÿÿÿÿœ‹ÿÿ;RLÿÿÿÿ§ØÕ;Qÿÿÿÿ¨`    ÿÿÿÿÿÿ©t`>ÿÿÿÿªãÿÿ`B0ÿÿ§«BÕcQÿÿÿÿ¬Vÿÿc#ÿÿÿÿ–     ÿÿÿÿ®&ÿÿ R
  285. ÿÿÿÿ¯*ÿÿ "
  286. ÿÿÿÿ°0ÿÿ H
  287. ÿÿÿÿ°±-    ÿÿÿÿÿÿ”>ÿÿ-ÿÿÿÿ“<ÿÿcÿÿÿÿ´
  288.     ÿÿ"ÿÿ©µ,
  289. >ÿÿÿÿ¶@ÿÿ
  290. )ÿÿµ·%->ÿÿÿÿ¸Mÿÿ-Bÿÿÿÿ3’'ÿÿ-ÿÿÿÿº7ÿÿ-ÿÿÿÿ»Hÿÿ-@ÿÿÿÿ&πSÿÿ-ÿÿ¡∏(- ÿÿÿÿ≤}    ÿÿ,ÿÿÿÿ¿…ÿÿÚ7ÿÿπÀ:ÿÿ}ÿÿÿÿÁFÿÿXÿÿÿÿÂvÿÿ˘
  291. ÿÿÿÿÃ1    ÿÿÿÿ·Äa1>ÿÿÿÿÅeÿÿ10ÿÿÿÿÆnU!ÿÿÿÿÇqÿÿU&ÿÿÿÿÈsÿÿUGÿÿÿÿÉ‘ÿÿU'ÿÿÿÿÊOÿÿc(ÿÿÿÿËZÿÿ-AÿÿlºÿÿHASH—ø6qΔ‘
  292. $Ú àùœG∫ª¢Ã´◊‘Môؑ[ÑÛÔ#ÑÛÔ1à"ÔÎá´fiãã%8◊fãµÕá?êä
  293. ëå&
  294. 
  295. ∏ Ä    &
  296.         ø€
  297. « &Æ8 œE®E0°E&¥H1¯J& ¸M&’M&
  298. ”M& »M& ÀM&ËM&…ºN&–U&±U&
  299. ≤]&
  300. ¶f&´¯, “¯,£¯,2ȯ1ǰ ʰ ¬°ÉÄ,
  301. ªÇ,Å÷b Â÷b   ƒAı,
  302. 0, Ã`b x, ˇxb ˛,√Q≈v…˝—À‘¿,pQqvr¬‰´‚˜´¨˝s¥. Àtåu
  303. v/wTxyyızÃ{,8}QI~v4˝5•À5™å5≠    
  304. 5∞    /5≥    T5∑    y5∫ mπ„ $ΩÁ $—˙ $¯˘ &≈˜
  305. ˛ˆ%()*+,00!OIPJCU ø- .    07    18    29    3:CdJWKX    (3
  306. G/    5'y·=y˝;Ù?<Ù    H>ùù&ùB5ù    $4ù    36‡J@‡>‡ ENÿ>\2ï$h-E.F/G0HFK`C/S0T1U2V0ZJY&D.L
  307. "A
  308. #B
  309. $]
  310. %^klij*m…”nûHe‡/R‡9b‡:c‡1_‡7`‡8a‡DQfl0g'P˝∫ÿ¬˚A& ŸA
  311. 7∂L: Qf¸eg|h“çmh’ÑÚj–◊alq”ºr§élr”◊at“◊ÅΩz«áoz¶ÕÄ}Bod}©ÓÖoœT% 
  312. CHARÚÈÿÿÿÿ ÿÿ ÿÿÿú    ÿÿÿfl ÿÿ ÿÿÿû
  313. ÿÿ•ÿÿÿÿ
  314.  ÿÿ ÿÿÿÿ"    àÿÿ ÿ÷àÿÿÿéÿÿ"ÿ† ÿÿ ÿóàÿÿÿúÿÿ
  315. ÿòÓ'ÿØ
  316. ÿÿflû•
  317. ÿÿÿ÷ àÿÿIÿÿÿÿÿÿÿÿ ÿÿàÿÿ
  318. ÿÿ"
  319. (
  320. '
  321. ÿÿ%
  322. ÿÿÿû
  323. ÿÿ
  324. ÿÿ     
  325.     ÿÿ àÿÿÿÿÿÿàÿÿ ÿÿ
  326. àÿÿÿÿCÿÿÿÿ ÿó
  327. Îÿÿ ÿÿ
  328. ÿÿ ÿÿ
  329. òÿÿ ÿ÷
  330. àÿÿ
  331.     ÿÿ
  332.     ÿÿ.    ÿÿ
  333.     ÿÿ
  334. ,
  335. 
  336.     +/    ÿÿ*
  337. 2
  338. 0/
  339. ÿÿ        3        
  340. ÿÿ6ÿÿ&    ÿÿ&ÿÿ  ÿÿ&
  341. 8&    ÿÿÓ
  342. ÿÿàÿÿÿÿÿÿÿë
  343. ÿÿ&ÿß
  344. ÿÿÿÿ Dÿÿÿÿ ÿÿ
  345. ÎEÿÿÿÿÿÿ
  346. Fÿÿÿÿ.ÿß
  347. ÎJÿÿÿÿfl÷•
  348. òÿÿ&ÿÿ
  349. ÿÿÿÿà ÿÿ
  350. Kÿÿÿÿfl÷™
  351. òLÿÿÿÿ ÿó
  352. àMÿÿÿÿflÿ•
  353. Nÿÿÿÿ.ÿ◊
  354. òOÿÿÿÿÿÿ•
  355. Pÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ
  356. Sÿÿàÿÿ ÿÿàÿÿ
  357. ÿòà<2ÿÿHASH70;1<49E:≥"53:/;2D1))*-    .    )4    **      B
  358. à  à
  359. >à Rà1Hè8          @
  360. A?$1G—&Ó=à
  361. (àQà#à
  362. àà2"ò' !RC?
  363. CELLÚ‹ÿÿÿÿÿOÿÿÿ"ÿÿÿÿü
  364. ÿÿÿÿø
  365. ÿÿøÿÿÿÿÿÿÿÿÿÿ    ÿÿü
  366. ÿÿü
  367. ÿÿø
  368. ÿÿø
  369. ÿÿü
  370. ÿÿÿÿü
  371. ÿÿü
  372. ÿÿøÿÿøøÿÿÿÿÿÿÿÿx≥
  373. ÿÿØ$ ÿÿx• ÿÿØ 
  374. ÿÿÿÿÿÿÿÿÿÿ    ÿÿø
  375. ÿÿø ÿÿ ÿÿ
  376. ÿÿÿÿøÿÿÿÿûÿÿøÿÿøÿÿÿÿÿÿÿÿ    ÿÿÿÿøÿÿÿ ÿÿÿ
  377. ÿÿü
  378. ÿÿü ÿÿøÿÿøÿÿø    ÿÿÿÿø ÿÿø
  379. ÿÿ@ÿÿÿÿø
  380. ÿÿÿÿÿÿø ÿÿ(Ó
  381. ÿÿ√s Δ@ÿÿHASHÿ    
  382.       
  383. $ %
  384. 67(xŸx∂Ø1Ø3øøø    ø
  385. ø
  386. )ü ü >     
  387. ! " #&'
  388. ./01
  389. 45;*2*èA…‘Bú=ú
  390. -ú,ú<ú3ú8ú9ú:‡    + Æÿÿ
  391. GRPHÚØdÿÿÿÿÿOÿÿÿBÿÿÎÿÿ
  392. ÿÿÎÿÿ
  393. ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ|ÿÿHASH
  394.     Ò
  395. Î   &æ\l
  396. RULRÚàGÿÿÿÿÿÿÿÿ‡@ÿÿ[ÿÿiÿbBÿÿizBV.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿ
  397. õ>ÿÿiflÂB<ÿÿÿÂB<ÿÿiflÂBÿÿÿ>ÿÿÿÂBÿÿÂBÿÿÿªB<ÿÿ÷Dÿÿ $ÿÿÿbBÿÿ $ÿÿ     $ÿÿÿÿ$ÿÿÿ@ÿÿHÿÿlÿÿÿDÿÿΔÿÿiÿzBÿÿ´;ÿÿÿÿÿjBÿÿØÿÿüÿÿ ÿÿDÿÿ    hÿÿ    öDÿÿ
  398. ‘ÿÿ °ÿÿibBb•.*à!h$*∫È*U˛*U¬*oÈ*oÜ*Y,*oØÿÿÿÿ$ÿÿHÿÿÿDÿÿlÿÿΔÿÿÿDÿÿ´ÿÿØÿÿüÿÿÿzBÿÿ ÿÿDÿÿ    hÿÿÿÿ$ÿÿHÿÿbBV.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿlÿÿΔÿÿiÿªB<=ÿÿÿÿiflrBÿÿ´?ÿÿÿÿÿrBÿÿÿ˚@ÿÿÿÿ˚b•.*à!h$*∫È*U˛*U¬*oÈ*oÜ*Y,*oØAÿÿÿÿj÷ÀBBÿÿÿÿè÷B.6.P.k.Ω.¢.∏.Ø.ó.
  399. .).D.`.z..°.k8“kL“T˛“kHCÿÿÿÿizBb•.*à!h$*∫È*U˛*U¬*oÈ*oÜ*Y,*oØDÿÿÿÿk´ÀbBb•.*à!h$*∫È*U˛*U¬*oÈ*oÜ*Y,*oØEÿÿÿÿzBb•.*à!h$*∫È*U˛*U¬*oÈ*oÜ*Y,*oØFÿÿÿÿÿB.6.P.k.Ω.¢.∏.Ø.ó.
  400. .).D.`.z..°.k8“kL“T˛“kHGÿÿÿÿÿ5Hÿÿÿÿh÷AJÿÿÿÿÿAÿÿibBV.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØMÿÿÿÿirBV.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿñ1ÿÿÿ1NÿÿÿÿÿrBPÿÿÿÿzBV.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿa˚V.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØQÿÿÿÿ˚V.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØRÿÿÿÿíbÿæNN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØSÿÿÿÿÿbÿæNN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØTÿÿÿÿizBN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØZÿÿÿÿzBN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿibBN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿbBN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿíbÿôNN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿÿbÿôNN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿijBN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØÿÿÿÿÿÿÿÿÿjBN.j.}.Δ.£.¶.Ê.†.›...*.=.P.c.v.….ˇ.Y,*oØ´FÿÿHASH…ïf%ÿ1L>ÿ
  401. ?òKDÿHõL÷Lÿ,Tÿ)]ö"œ≤0î>
  402.   >'W>:o    o>ÿ4,50Q6v8˝9À<0 â
  403. V â7uá¡Uuá©IŸá©˛
  404. >,Qv˝Àå&
  405. /T y!ı#Ã$,'Q(v*˝+À-å.    
  406. /    /1    T2    y3
  407. 0
  408. cã±O â~X áŒWÜ
  409. [}Û¡Y@ÿ@‡P DTLKUP    ˛ı–´
  410. ˇ ƒ!·®’∏"¯#µ±$%°Ã&'()*º+¡À¥“,”-¶.«/T0Á1»Ÿ234¸5Ê⁄67π]
  411. ¬89:Ë;€u<=¨Ä>Δ?ÅŒ@ABCDE ÆFGÇHÈ©wÂxzI•J∂≤KL™≠∫MNO√P≈⁄¿QÉR∂˚STUVWXYZ Í[\]^_`abcdefghijklmnopqrstuvwxyz{|}~•™≠∞≥∑∫Ω√≈…—‘ÎÏÑœÒÓÔÖ¢◊٧ۂ܆fißàáâäªåæçèéêëìíï„›ñòóôõö÷øùúûü‡flÿ‰      
  412. ˆ˜˘˙˚˝ÿÿ£¸ÿÿ$NAMEDefault
  413. Default SSHeaderBodyFooterFootnoteFootnote Index HeadingH2.H2Code.CV Heading1.H1Italic HeadingH3.H3Bullet    ChecklistNumberClassic+ Blue Gray 1G Blue Gray 2dColorful∞
  414. 3D Table 1˝
  415. 3D Table 2œ
  416. Accounting¯HarvardπLegalÇDiamondÕTechnote HeadingìDFNTM    HelveticaGenevaChicagoPalatinoÿÿNew Century Schlbk
  417. 
  418. Zapf Dingbats:H
  419. Letter GothicETBL@FNTMJ†CUTSJåDSUMJíHDNIK&STYLK0ETBL¨ÿfl‡üûúùø›ñòóôõö÷
  420.